package org.freehep.graphicsio.emf.gdi;

import java.awt.Rectangle;
import java.io.IOException;

import org.freehep.graphicsio.emf.EMFInputStream;
import org.freehep.graphicsio.emf.EMFOutputStream;

/**
 * 
 * @author tonyj
 */
public class Region {
	private Rectangle bounds;

	private Rectangle region;

	public Region(Rectangle bounds, Rectangle region) {
		this.bounds = bounds;
		this.region = region;
	}

	public Region(EMFInputStream emf) throws IOException {
		/* int length = */ emf.readDWORD();
		/* int mode = */ emf.readDWORD();
		/* int nRect = */ emf.readDWORD();
		int size = emf.readDWORD();
		bounds = emf.readRECTL();
		region = emf.readRECTL();
		for (int i = 16; i < size; i += 16) {
			emf.readRECTL();
		}
	}

	public void write(EMFOutputStream emf) throws IOException {
		emf.writeDWORD(32);
		emf.writeDWORD(1); // RDH_RECTANGLES
		emf.writeDWORD(1);
		emf.writeDWORD(16);
		emf.writeRECTL(bounds);
		emf.writeRECTL(region);
	}

	public int length() {
		return 48;
	}

	@Override
	public String toString() {
		return "  Region\n" + "    bounds: " + bounds + "\n" + "    region: "
				+ region;
	}
}
